<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>async函数</title>
  </head>
  <body>
    <script>
      // async 函数 返回结果是一个Promise对象,状态由返回值决定
      async function fn() {
        // return返回的结果不是一个promise对象,则函数返回的结果为一个成功的promise对象
        // return 123;
        // 抛出错误,返回的结果是一个失败的promise对象
        // throw new Error('错误');
        // 返回结果是一个Promise对象
        return new Promise((resolve, reject) => {
          resolve("成功"); // 返回Promise的状态就是fn函数的状态
          // reject("失败");
        });
      }

      const result = fn();
      console.log(result);

      // 调用then方法
      result.then(
        (value) => {
          console.log(value); // 成功
        },
        (reason) => {
          console.warn(reason);
        }
      );
    </script>
  </body>
</html>
